遞歸神經網絡( Recurrent Neural Network,簡稱 RNN )
主要用於處理時間序列、自然語言文本等,RNN 的特點在於它具有記憶能力,可以處理可變長度的輸入序列,並在處理序列資料時保留先前的資訊
-
循環層( Recurrent Layer )
存在一個或多個循環層,每個循環層都具有權重和偏差還有一個隱藏狀態( hidden state ),記錄有關之前的資訊,而隱藏狀態在每個時間步都會被更新
-
時間步( Time Step )
序列資料時被分成多個時間步,每個時間步接受一個輸入,並生成一個隱藏狀態和一個輸出
-
遞歸的反向傳播( Backpropagation Through Time,BPTT )
使用反向傳播算法進行訓練,不同於傳統神經網絡,RNN 需要在時間步之間傳播梯度
關鍵特點
-
循環性: 使用回饋迴路,讓資訊可以在網絡中循環,也使 RNN 能記住之前的輸入,並把之前的輸入納入當前的計算中
-
序列處理: RNN 接受單一輸入向量,並且處理整個序列,而每個時間步的輸入都與先前時間步的輸出相關聯
-
LSTM 和 GRU: 長短時記憶網絡( LSTM )和門控循環單元( GRU ),這些變體解決傳統 RNN 中的梯度消失和梯度爆炸問題,也提高了性能
長短期記憶模型( LSTM )
LSTM 是一種特殊的 RNN 變體,改善 RNN 在處理長序列資料時的能力
有特定的閘門機制,以控制資訊的流動,並保留長期記憶
結構運作
包含三個重要的閘門
-
遺忘閘門( Forget Gate ) 選擇哪些長期記憶應保留或丟棄
-
輸入閘門( Input Gate ) 決定新的資訊應該被添加到長期記憶中
-
輸出閘門( Output Gate ) 根據當前的輸入和長期記憶來生成模型的輸出
每個閘門都是由一個 sigmoid 函數來控制,決定哪些資訊要被保留或遺忘
門控循環單元(GRU)
GRU 是另一種 RNN 變體,簡化 LSTM 的結構,減少參數數量,仍能有效處理長期依賴性
結構運作
GRU 包含兩個主要的閘門
-
更新閘門( Update Gate ) 控制哪些資訊應該被保留,並確保過去的資訊不會過度影響當前輸出
-
重置閘門(Reset Gate) 決定哪些資訊應該被忘記或重置
減少了 LSTM 的複雜性